package com.kaifamiao.service;

import com.kaifamiao.entity.FileInfo;
import com.kaifamiao.exception.ServiceException;

import java.util.List;

public interface FileService {

    /**
     * 保存文件信息及其内容
     * @param fileInfo 被保存文件信息及其内容
     * @return 若保存成功则返回 true ; 若保存失败则返回 false
     * @throws ServiceException 若保存时发生故障则抛出该异常
     */
    boolean save(FileInfo fileInfo) throws ServiceException;

    /**
     * 根据用户编号查询文件信息(不含文件内容):
     *   当第二个参数 exclude 为 true 时表示查询除指定用户外、属于其他用户的文件信息
     *   当第二个参数 exclude 为 false 时表示【仅查询】属于指定用户的文件信息
     * @param userId 查询条件中使用的用户编号
     * @param exclude 当参数值为 true 时表示查询除 userId 外其它用户的文件信息;
     *                当参数值为 false 时表示仅查询 userId 对应的文件信息
     * @return 返回符合查询条件的文件信息
     * @throws ServiceException 若查询时发生故障则抛出该异常
     */
    List<FileInfo> loadFiles(Integer userId, boolean exclude) throws ServiceException;

}
